home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok26.lha / ConvTabs / TabConversions.def < prev    next >
Text File  |  1993-08-15  |  2KB  |  35 lines

  1. (*---------------------------------------------------------------------------
  2.     :Program.     TabConversions.def
  3.     :Contents.      Replace spaces with tabs and delete trailing blanks.
  4.     :Author.      Bernd Preusing
  5.     :Address.      Gerhardstr. 16  D-2200 Elmshorn
  6.     :Phone.      04121/22486
  7.     :Copyright.      Public Domain
  8.     :Language.      Modula-2
  9.     :Translator.  M2Amiga V3.2e
  10.     :Support.      ()
  11.     :History.      V1.0 26-Aug-89 Bernd Preusing
  12.     :Imports.      none
  13.     :Bugs.      Strings go across lines!
  14.     :Remark.      IMP-Module is TabConversions.asm
  15. ---------------------------------------------------------------------------*)
  16. DEFINITION MODULE TabConversions;
  17.  
  18. FROM SYSTEM    IMPORT    ADDRESS;
  19.  
  20. PROCEDURE SpacesToTabs(src{8},dst{9}:ADDRESS):LONGINT;
  21. (* :Input.    src zeigt auf einen Text, der mit 0C enden muß.
  22.    :Input.    dst zeigt auf einen Puffer für den neuen Text; beide Zeiger
  23.    :Input.    können identisch sein, weil neue Länge <= alte Länge
  24.    :Result.    Länge des neuen Textes (ohne 0C am Ende)
  25.    :Semantic.    Die Prozedur ersetzt Leerzeichen in einem Text durch
  26.    :Semantic.    Tabs (ht), wo möglich. Ab einem Zeichen '"' oder "'" wird
  27.    :Semantic.    bis zum Textende oder dem gleichen Zeichen direkt kopiert,
  28.    :Semantic.    also nichts verändert.
  29.    :Semantic.    Leerzeichen an den Zeilenenden werden abgeschnitten.
  30.    :Remark.    Beispiel: NewLen:=SpacesToTabs(ADR(Buffer),ADR(Buffer));
  31.    :Remark.    Der Text darf auch aus mehreren Zeilen bestehen, die mit
  32.    :Remark.    eol (CHAR(10)) oder cr (CHAR(13)) enden.
  33. *)
  34. END TabConversions.def
  35.